import 'package:fluro/fluro.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:megatron/utils/utils.dart';
import 'package:shared_preferences/shared_preferences.dart';

import '../const.dart';
import '../routes.dart';

class Setting extends StatefulWidget {
  @override
  _SettingState createState() => _SettingState();
}

class _SettingState extends State<Setting> {
  var rot = ['竖屏', '左侧', '右侧'];
  int rotation = 0;
//  var sou = ['系统内录', '麦克风开'];
//  int sound = 0;
  var scr = ['540P', '720P'];
  int screen = 0;

  String ip;
  SharedPreferences sp;

  @override
  void initState() {
    _getSp();
  }

  _getSp() async {
    sp = await SharedPreferences.getInstance();
    rotation = sp.get('rotation');
    if (rotation == null) {
      rotation = 0;
      sp.setInt('rotation', rotation);
    }
//    sound = sp.get('sound');
//    if (sound == null) {
//      sound = 0;
//      sp.setInt('sound', sound);
//    }
//    ip = sp.get('ip');

//    if (ip == null) {
//      ip = Const.BASEURL;
//      sp.setString('ip', ip);
//    }
    screen = sp.get('screen');
    if (screen == null) {
      screen = 0;
      sp.setInt('screen', screen);
    }
    setState(() {});
  }

  _buildRotation() {
    List<Widget> list = List();
    list.add(
      BottomBar(
        title: '竖屏',
        color: Const.blue,
        onTap: () {
          rotation = 0;
          sp.setInt('rotation', rotation);
          Navigator.pop(context);
          setState(() {});
        },
      ),
    );
    list.add(
      BottomBar(
        title: '横屏左',
        color: Const.black,
        onTap: () {
          rotation = 1;
          sp.setInt('rotation', rotation);
          Navigator.pop(context);
          setState(() {});
        },
      ),
    );
    list.add(
      BottomBar(
        title: '横屏右',
        color: Const.black,
        onTap: () {
          rotation = 2;
          sp.setInt('rotation', rotation);
          Navigator.pop(context);
          setState(() {});
        },
      ),
    );
    list.add(
      BottomBar(
        title: '取消',
        color: Const.gray,
        onTap: () {
          Navigator.pop(context);
        },
      ),
    );
    return list;
  }

//  _buildSound() {
//    List<Widget> list = List();
//    list.add(
//      BottomBar(
//        title: '系统内录',
//        color: Const.black,
//        onTap: () {
//          sound = 0;
//          sp.setInt('sound', sound);
//          Navigator.pop(context);
//          setState(() {});
//        },
//      ),
//    );
//    list.add(
//      BottomBar(
//        title: '麦克风',
//        color: Const.black,
//        onTap: () {
//          sound = 1;
//          sp.setInt('sound', sound);
//          Navigator.pop(context);
//          setState(() {});
//        },
//      ),
//    );
//    list.add(
//      BottomBar(
//        title: '取消',
//        color: Const.gray,
//        onTap: () {
//          Navigator.pop(context);
//        },
//      ),
//    );
//    return list;
//  }

  _buildScreen() {
    List<Widget> list = List();
    list.add(
      BottomBar(
        title: '540P',
        color: Const.black,
        onTap: () {
          screen = 0;
          sp.setInt('screen', screen);
          Navigator.pop(context);
          setState(() {});
        },
      ),
    );
    list.add(
      BottomBar(
        title: '720P',
        color: Const.black,
        onTap: () {
          screen = 1;
          sp.setInt('screen', screen);

          Navigator.pop(context);
          setState(() {});
        },
      ),
    );
    list.add(
      BottomBar(
        title: '取消',
        color: Const.gray,
        onTap: () {
          Navigator.pop(context);
        },
      ),
    );
    return list;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xffededed),
      appBar: AppBar(
        centerTitle: true,
        title: Text('设置'),
      ),
      body: Column(
        children: <Widget>[
          CardBar(
            title: '视频画质',
            content: scr[screen],
            onTap: () {
              Utils.getInstance().showBottomSheet(context, _buildScreen());
            },
          ),
          SizedBox(
            height: 2,
          ),
          CardBar(
            title: '屏幕方向',
            content: rot[rotation],
            onTap: () {
              Utils.getInstance().showBottomSheet(context, _buildRotation());
            },
          ),
          SizedBox(
            height: 10,
          ),
//          CardBar(
//            title: '服务器地址',
//            content: Utils.getInstance().checkEmpty(ip) ? '' : ip,
//            onTap: () {
//              showDialog(
//                  context: context,
//                  builder: (BuildContext context) {
//                    return StatefulBuilder(builder: (context, state) {
//                      return Material(
//                        //创建透明层
//                        type: MaterialType.transparency, //透明类型
//                        child: Center(
//                          //保证控件居中效果
//                          child: Padding(
//                            padding: const EdgeInsets.symmetric(horizontal: 40),
//                            child: SizedBox(
//                              width: MediaQuery.of(context).size.width,
//                              height: 250,
//                              child: Card(
//                                shape: const RoundedRectangleBorder(
//                                    borderRadius:
//                                        BorderRadius.all(Radius.circular(5))),
//                                elevation: 0,
//                                margin: EdgeInsets.all(0),
//                                child: Padding(
//                                  padding: const EdgeInsets.symmetric(
//                                      horizontal: 26, vertical: 32),
//                                  child: Column(
//                                    children: <Widget>[
//                                      Text(
//                                        '请输入服务器地址',
//                                        style: TextStyle(
//                                            fontSize: 24, color: Const.blue),
//                                      ),
//                                      SizedBox(
//                                        height: 32,
//                                      ),
//                                      TextField(
//                                        keyboardType: TextInputType.number,
//                                        onChanged: (value) {
//                                          ip = value;
//                                          sp.setString('ip', ip);
//                                        },
//                                        style: TextStyle(
//                                            fontSize: 18, color: Const.gray),
//                                        decoration: InputDecoration(
//                                          hintText: '请输入服务器地址',
//                                          labelStyle: TextStyle(
//                                              color: Const.gray, fontSize: 18),
//                                          focusedBorder: UnderlineInputBorder(
//                                              borderSide: BorderSide(
//                                            color: Const.gray,
//                                            width: 1,
//                                          )),
//                                          enabledBorder: UnderlineInputBorder(
//                                              borderSide: BorderSide(
//                                            color: Const.gray,
//                                            width: 1,
//                                          )),
//                                        ),
//                                      ),
//                                      SizedBox(
//                                        height: 22,
//                                      ),
//                                      MaterialButton(
//                                        height: 44,
//                                        minWidth:
//                                            MediaQuery.of(context).size.width,
//                                        elevation: 0,
//                                        onPressed: () {
//                                          Navigator.pop(context);
//                                          setState(() {});
//                                        },
//                                        child: Text(
//                                          "登录",
//                                          style: TextStyle(
//                                              color: Colors.white,
//                                              fontSize: 18),
//                                        ),
//                                        color: Const.blue,
//                                        shape: RoundedRectangleBorder(
//                                            borderRadius: BorderRadius.all(
//                                                Radius.circular(88 / 3 * 2))),
//                                      ),
//                                    ],
//                                  ),
//                                ),
//                              ),
//                            ),
//                          ),
//                        ),
//                      );
//                    });
//                  });
//            },
//          ),
//          SizedBox(
//            height: 2,
//          ),
//          CardBar(
//            title: '音频来源',
//            content: sou[sound],
//            onTap: () {
//              Utils.getInstance().showBottomSheet(context, _buildSound());
//            },
//          ),
          SizedBox(
            height: 66,
          ),
          Material(
            color: Colors.white,
            child: InkWell(
              onTap: () {
                sp.clear();
                Routes.router.navigateTo(context, '${Routes.login}',
                    clearStack: true, transition: TransitionType.fadeIn);
              },
              child: SizedBox(
                height: 60,
                child: Center(
                  child: Text(
                    '退出登录',
                    style: TextStyle(fontSize: 19, color: Const.black),
                  ),
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}

class CardBar extends StatelessWidget {
  final title;
  final content;
  final onTap;

  const CardBar({Key key, this.title, this.content, this.onTap})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.white,
      child: InkWell(
        onTap: onTap,
        child: SizedBox(
          height: 60,
          child: Padding(
            padding: const EdgeInsets.symmetric(horizontal: 22),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Text(
                  title,
                  style: TextStyle(fontSize: 19, color: Const.black),
                ),
                Row(
                  children: <Widget>[
                    Text(
                      content,
                      style: TextStyle(fontSize: 19, color: Const.gray),
                    ),
                    SizedBox(
                      width: 19,
                    ),
                    Image.asset(
                      'images/set_up_go.png',
                      scale: 3,
                    )
                  ],
                )
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class BottomBar extends StatelessWidget {
  final onTap;
  final title;
  final color;

  const BottomBar({Key key, this.onTap, this.title, this.color})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Material(
          color: Colors.white,
          child: InkWell(
            onTap: onTap,
            child: SizedBox(
              height: 60,
              child: Center(
                child: Text(
                  title,
                  style: TextStyle(fontSize: 19, color: color),
                ),
              ),
            ),
          ),
        ),
        Divider(
          height: 2,
          color: Const.gray,
        )
      ],
    );
  }
}

//class IpDialog extends Dialog {
//  String text;
//  String ip;
//
//  IpDialog({Key key, @required this.text}) : super(key: key);
//
//  @override
//  Widget build(BuildContext context) {
//    return Material(
//      //创建透明层
//      type: MaterialType.transparency, //透明类型
//      child: Center(
//        //保证控件居中效果
//        child: Padding(
//          padding: const EdgeInsets.symmetric(horizontal: 40),
//          child: SizedBox(
//            width: MediaQuery.of(context).size.width,
//            height: 250,
//            child: Card(
//              shape: const RoundedRectangleBorder(
//                  borderRadius: BorderRadius.all(Radius.circular(5))),
//              elevation: 0,
//              margin: EdgeInsets.all(0),
//              child: Padding(
//                padding:
//                    const EdgeInsets.symmetric(horizontal: 26, vertical: 32),
//                child: Column(
//                  children: <Widget>[
//                    Text(
//                      '请输入服务器地址',
//                      style: TextStyle(fontSize: 24, color: Const.blue),
//                    ),
//                    SizedBox(
//                      height: 32,
//                    ),
//                    TextField(
//                      keyboardType: TextInputType.number,
//                      onChanged: (value) {
//                        ip = value;
//                      },
//                      style: TextStyle(fontSize: 18, color: Const.gray),
//                      decoration: InputDecoration(
//                        hintText: '请输入服务器地址',
//                        labelStyle: TextStyle(color: Const.gray, fontSize: 18),
//                        focusedBorder: UnderlineInputBorder(
//                            borderSide: BorderSide(
//                          color: Const.gray,
//                          width: 1,
//                        )),
//                        enabledBorder: UnderlineInputBorder(
//                            borderSide: BorderSide(
//                          color: Const.gray,
//                          width: 1,
//                        )),
//                      ),
//                    ),
//                    SizedBox(
//                      height: 22,
//                    ),
//                    MaterialButton(
//                      height: 44,
//                      minWidth: MediaQuery.of(context).size.width,
//                      elevation: 0,
//                      onPressed: () {
//                        print(ip);
//                        Navigator.pop(context, ip);
//                      },
//                      child: Text(
//                        "确认",
//                        style: TextStyle(color: Colors.white, fontSize: 18),
//                      ),
//                      color: Const.blue,
//                      shape: RoundedRectangleBorder(
//                          borderRadius:
//                              BorderRadius.all(Radius.circular(88 / 3 * 2))),
//                    ),
//                  ],
//                ),
//              ),
//            ),
//          ),
//        ),
//      ),
//    );
//  }
//}
